<#include "macro.ftl">
<#include "license.ftl">
<@license/>
package ${doc.all.package}.gwt.constants;

import com.google.gwt.core.client.GWT;

/**
* @author Redora (www.redora.net)
*/
public interface Constants extends com.google.gwt.i18n.client.Constants {
<#list doc["/all/object"] as model>
    <#if model.caption[0]??>
        <#assign hasDefaultLanguage = "false" />
        <#list model.caption as cap>
        <#if cap.@language == doc.all.languages.@defaultLanguage>
            <#assign hasDefaultLanguage = "true" />
                <#if cap.@table[0]??>
    @DefaultStringValue("${cap.@table}")
    @Key("${model.@name}.table")
    String ${model.@name?uncap_first}_table();
                        <#else>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.table")
    String ${model.@name?uncap_first}_table();
                        </#if>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.form")
    String ${model.@name?uncap_first}_form();
        </#if>
        </#list>
        <#if hasDefaultLanguage == "false">
                <#assign defaultStringValue = model.@name?cap_first>
                <@cap_and_split_default fieldName=model.@name />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.table")
    String ${model.@name?uncap_first}_table();
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.form")
    String ${model.@name?uncap_first}_form();
        </#if>
    <#else>
    <#assign defaultStringValue = model.@name?cap_first>
                <@cap_and_split_default fieldName=model.@name />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.table")
    String ${model.@name?uncap_first}_table();
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.form")
    String ${model.@name?uncap_first}_form();
    </#if>
    <#list model.attributes?children as att>
        <#if att?node_name != "enum" || att.@scope != "global">
            <#if att.caption[0]??>
                <#assign hasDefaultLanguage = "false" />
                <#list att.caption as cap>
                    <#if cap.@language == doc.all.languages.@defaultLanguage>
                        <#assign hasDefaultLanguage = "true" />
                        <#if cap.@table[0]??>
    @DefaultStringValue("${cap.@table}")
    @Key("${model.@name}.${att.@fieldName}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_table();
                        <#else>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.${att.@fieldName}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_table();
                        </#if>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.${att.@fieldName}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_form();	
                    </#if>
                </#list>
                <#if hasDefaultLanguage == "false">
                <#if att?node_name != "set" && att?node_type == "element">
                <#assign defaultStringValue = att.@fieldName?cap_first>
                <@cap_and_split_default fieldName=att.@fieldName />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_form();
                </#if>
                <#if att?node_name == "set" && att?node_type == "element">
                <#assign defaultStringValue = att.@plural?cap_first>
                <@cap_and_split_default fieldName=att.@plural />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@plural}.table")
    String ${model.@name?uncap_first}_${att.@plural}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@plural}.form")
    String ${model.@name?uncap_first}_${att.@plural}_form();
                </#if>
                </#if>
            <#else>
                <#if att?node_name != "set" && att?node_type == "element">
                <#assign defaultStringValue = att.@fieldName?cap_first>
                <@cap_and_split_default fieldName=att.@fieldName />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_form();
                </#if>
                <#if att?node_name == "set" && att?node_type == "element">
                <#assign defaultStringValue = att.@plural?cap_first>
                <@cap_and_split_default fieldName=att.@plural />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@plural}.table")
    String ${model.@name?uncap_first}_${att.@plural}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@plural}.form")
    String ${model.@name?uncap_first}_${att.@plural}_form();
                </#if>
            </#if>
        </#if>
        <#if att?node_name == "enum" && att.@scope != "global">
            <#list att.element as value>
                <#if value.caption[0]??>
                    <#assign hasDefaultLanguage = "false" />
                    <#list value.caption as cap>
                        <#if cap.@language == doc.all.languages.@defaultLanguage>
                            <#assign hasDefaultLanguage = "true" />
                            <#if cap.@table[0]??>
    @DefaultStringValue("${cap.@table}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_table();
                            <#else>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_table();
                            </#if>
    @DefaultStringValue("${cap.@form}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_form();
                        </#if>
                    </#list>
                    <#if hasDefaultLanguage == "false">
                    <#assign defaultStringValue = value.@name>
                <@cap_and_split_default fieldName=value.@name />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_form();
                    </#if>
                <#else>
                <#assign defaultStringValue = value.@name>
                <@cap_and_split_default fieldName=value.@name />
    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.table")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_table();

    @DefaultStringValue("${defaultStringValue}")
    @Key("${model.@name}.${att.@fieldName}.${value.@name}.form")
    String ${model.@name?uncap_first}_${att.@fieldName}_${value.@name}_form();
                </#if>
            </#list>
        </#if>

        <#if att.help[0]??>
            <#list att.help as help>
                <#if help.@language == doc.all.languages.@defaultLanguage>
    @DefaultStringValue("${help}")
    @Key("${model.@name}.${att.@name}.help")
    String ${model.@name?uncap_first}_${att.@name}_help();

                </#if>
            </#list>
        </#if>
    </#list>
</#list>
}
